package com.bigfire.dtm.core.query.handler.user;

import com.bigfire.dtm.api.dto.resp.user.UserDetailRespDTO;
import com.bigfire.dtm.dal.entity.user.UserInfoEntry;
import com.bigfire.dtm.domain.user.vo.UserInfoVO;
import org.mapstruct.Mapper;

import java.util.List;

/**
 * 用户对象转换
 * @author Damon S.
 * @version v1.0.1
 * @date {YEAR}年{MONTH}月{DAY}日 {TIME}
 */
@Mapper(componentModel = "spring")
public interface UserInfoTranslator {

    /**
     * 转换一个用户数据项
     * @param entry 用户数据项
     * @return 返回用户对象
     */
    UserInfoVO toUserInfo(UserInfoEntry entry);

    /**
     * 转换一个用户数据项
     * @param user 用户数据项
     * @return 返回用户对象
     */
    UserDetailRespDTO toUserResp(UserInfoVO user);

    /**
     * 批量转换用户数据
     * @param entries 用户数据项
     * @return 返回用户对象集合
     */
    List<UserInfoVO> toUserInfos(List<UserInfoEntry> entries);

    /**
     * 批量转换用户数据
     * @param users 用户数据项
     * @return 返回用户对象集合
     */
    List<UserDetailRespDTO> toUserResps(List<UserInfoVO> users);
}
